﻿Imports System.Drawing.Printing

Public Class Controlador
    Dim ad As New Acceso_Datos

    Public Sub generarInformeStock()

        f_informe.Close()
        f_informe.MdiParent = PlantillaPrincipal
        f_informe.rdInforme = New r_stocks

        f_informe.rdInforme.setParameterValue("@nombre", f_stocks.tb_b_nombre.Text)
        f_informe.rdInforme.setParameterValue("@numeroProveedor", CInt(f_stocks.cb_proveedor.SelectedValue.ToString))
        f_informe.rdInforme.setParameterValue("@numeroCategoria", CInt(f_stocks.cb_categoria.SelectedValue.ToString))
        f_informe.Show()
    End Sub
    Public Sub generarInformeHistorial()

        f_informe.Close()
        f_informe.MdiParent = PlantillaPrincipal
        f_informe.rdInforme = New r_historial
        f_informe.rdInforme.setParameterValue("@idMascota", f_mascotas.dg_mascotas.CurrentRow.Cells("id_mascota").Value)

        f_informe.Show()
    End Sub
    Public Sub buscar_citas()

        f_citas.dg_citas.DataSource = ad.buscar_citas(f_citas.dg_citas.DataSource, f_citas.tb_b_nombre.Text, f_citas.calendario_busqueda.SelectionRange.Start)


    End Sub
    Public Sub mostrar(ByVal admin As Boolean)

        PlantillaPrincipal.pg_citas.Visible = True
        PlantillaPrincipal.pg_agenda.Visible = True
        PlantillaPrincipal.pg_clientes.Visible = True

        PlantillaPrincipal.pg_mascotas.Visible = True
        PlantillaPrincipal.pg_stock.Visible = True

        If admin = True Then
            PlantillaPrincipal.pg_gestion.Visible = True
        End If
        PlantillaPrincipal.deshabilitar()

        f_login.Close()
        f_citas.Show()
        PlantillaPrincipal.p_guardar.Enabled = False
        PlantillaPrincipal.b_agregar_cita.Enabled = True
        PlantillaPrincipal.b_eliminar_cita.Enabled = True
        PlantillaPrincipal.b_modificar_cita.Enabled = True
        PlantillaPrincipal.p_cita.Enabled = True
        PlantillaPrincipal.p_citas_dia.Enabled = True
        PlantillaPrincipal.BarButtonItem5.Enabled = True



    End Sub

    Public Sub logar()
        Dim u As Usuario
        u = ad.devuelve_usu_by_psw_us(f_login.t_usuario.Text, f_login.t_psw.Text)
        If u Is Nothing Then

            MsgBox("Login incorrecto")
            f_login.t_psw.Clear()
            f_login.t_usuario.Clear()
            f_login.t_usuario.Focus()

        Else

            Dim m As Boolean
            m = False
            If u.getTipo = "admin" Then
                m = True
            End If
            mostrar(m)
        End If
    End Sub

    Public Sub to_login()

        PlantillaPrincipal.pg_citas.Visible = False
        PlantillaPrincipal.pg_agenda.Visible = False
        PlantillaPrincipal.pg_clientes.Visible = False
        PlantillaPrincipal.pg_gestion.Visible = False


        PlantillaPrincipal.pg_mascotas.Visible = False
        PlantillaPrincipal.pg_stock.Visible = False

        f_login.Show()
        f_login.Focus()

    End Sub
    Public Sub confirmar_cita()
        Try
            If ad.confirmar_cita(f_citas.dg_citas.CurrentRow.Cells("id_cita").Value) Then
                MsgBox("Cita confirmada", MsgBoxStyle.Information, "Cita")
                refrescar_citas()

            End If
        Catch
            MsgBox("No hay ninguna fila seleccionada", MsgBoxStyle.Information, "Cita")
        End Try



    End Sub
    Public Sub devuelve_citas()
        Dim d As DataSet = ad.devuelve_citas
        f_citas.dg_citas.DataSource = d
        f_citas.dg_citas.DataMember = "citas"
        f_citas.dg_citas.Columns("id_cita").Visible = False


    End Sub
    '------------------------------ CARNET ---------------------------------------

    Public Sub imprimir(ByVal sender As System.Object, ByVal ev As PrintPageEventArgs)

        'Dim rectImg2 As New Rectangle(120, 10, 100, 25)

        Dim id_cliente = ""

        If f_clientes.dg_clientes.CurrentRow IsNot Nothing Then
            id_cliente = CType(f_clientes.dg_clientes.CurrentRow.Cells("id_cliente").Value, String)
        End If


        Dim l1 As String = "            __________________________________________"
        Dim l2 As String = "            PROTOZOO CENTRO DE ANIMALES"
        Dim l3 As String = "                            CARNET DE SOCIO"
        Dim l4 As String = "                            C/ Escosura, 19"
        Dim l5 As String = "                            28043, Madrid"
        Dim l6 As String = "            Nombre: " & f_clientes.tb_nombre.Text
        Dim l7 As String = "            Apellidos: " & f_clientes.tb_apellidos.Text
        Dim l8 As String = "            Número de socio: " & id_cliente
        Dim l9 As String = "            __________________________________________"



        'ev.Graphics.DrawImage(miImagen, rectImg2)

        ev.Graphics.DrawString(l1, New Font("Courier New", 9, FontStyle.Regular), Brushes.Black, 120, 220)
        ev.Graphics.DrawString(l2, New Font("Courier New", 12, FontStyle.Bold), Brushes.Black, 120, 240)
        ev.Graphics.DrawString(l3, New Font("Courier New", 9, FontStyle.Regular), Brushes.Black, 120, 260)
        ev.Graphics.DrawString(l4, New Font("Courier New", 9, FontStyle.Regular), Brushes.Black, 120, 280)
        ev.Graphics.DrawString(l5, New Font("Courier New", 9, FontStyle.Regular), Brushes.Black, 120, 300)
        ev.Graphics.DrawString(l6, New Font("Courier New", 9, FontStyle.Regular), Brushes.Black, 120, 340)
        ev.Graphics.DrawString(l7, New Font("Courier New", 9, FontStyle.Regular), Brushes.Black, 120, 360)
        ev.Graphics.DrawString(l8, New Font("Courier New", 9, FontStyle.Bold), Brushes.Black, 120, 400)
        ev.Graphics.DrawString(l9, New Font("Courier New", 9, FontStyle.Regular), Brushes.Black, 120, 420)
        ev.HasMorePages = False


    End Sub


    '------------------------------ USUARIOS ---------------------------------------


    Public Sub refresca_usuarios()

        Dim d As DataSet = ad.ver_usuarios
        f_usuarios.dg_usuarios.DataSource = d
        f_usuarios.dg_usuarios.DataMember = "usuarios"
        f_usuarios.dg_usuarios.Columns("id_usuario").Visible = False

        f_usuarios.tb_nombre.DataBindings.Clear()
        f_usuarios.tb_direccion.DataBindings.Clear()
        f_usuarios.tb_email.DataBindings.Clear()
        f_usuarios.tb_psw.DataBindings.Clear()
        f_usuarios.tb_telefono.DataBindings.Clear()
        f_usuarios.cb_tipo.DataBindings.Clear()

        f_usuarios.tb_nombre.DataBindings.Add("text", d, "usuarios.nombre")
        f_usuarios.tb_direccion.DataBindings.Add("text", d, "usuarios.direccion")
        f_usuarios.tb_email.DataBindings.Add("text", d, "usuarios.email")
        f_usuarios.tb_psw.DataBindings.Add("text", d, "usuarios.psw")
        f_usuarios.tb_telefono.DataBindings.Add("text", d, "usuarios.telefono")
        f_usuarios.cb_tipo.DataBindings.Add("text", d, "usuarios.tipo")


    End Sub


    Public Sub muestra_usuarios()
        Dim d As DataSet = ad.ver_usuarios
        f_usuarios.dg_usuarios.DataSource = d
        f_usuarios.dg_usuarios.DataMember = "usuarios"
        f_usuarios.dg_usuarios.Columns("id_usuario").Visible = False

        f_usuarios.tb_nombre.DataBindings.Add("text", d, "usuarios.nombre")
        f_usuarios.tb_direccion.DataBindings.Add("text", d, "usuarios.direccion")
        f_usuarios.tb_email.DataBindings.Add("text", d, "usuarios.email")
        f_usuarios.tb_psw.DataBindings.Add("text", d, "usuarios.psw")
        f_usuarios.tb_telefono.DataBindings.Add("text", d, "usuarios.telefono")
        f_usuarios.cb_tipo.DataBindings.Add("text", d, "usuarios.tipo")


    End Sub

    Public Sub limpiar_us()

        f_usuarios.tb_nombre.Text = ""
        f_usuarios.tb_psw.Text = ""
        f_usuarios.tb_telefono.Text = ""
        f_usuarios.tb_direccion.Text = ""
        f_usuarios.tb_email.Text = ""
        f_usuarios.cb_tipo.Text = ""



    End Sub

    Public Function comprueba_vacios_us() As String

        Dim errores = ""
        If (f_usuarios.tb_nombre.Text.Equals("")) Then
            errores = errores & "- Nombre" & vbCrLf
        End If
        If (f_usuarios.tb_psw.Text.Equals("")) Then
            errores = errores & "- Clave" & vbCrLf
        End If
        If (f_usuarios.cb_tipo.Text.Equals("")) Then
            errores = errores & "- Tipo" & vbCrLf
        End If
        If (f_usuarios.tb_telefono.Text.Equals("")) Then
            errores = errores & "- Telefono" & vbCrLf
        End If
        If (f_usuarios.tb_direccion.Text.Equals("")) Then
            errores = errores & "- Direccion" & vbCrLf
        End If
        If (f_usuarios.tb_email.Text.Equals("")) Then
            errores = errores & "- Email" & vbCrLf
        End If

        Return errores

    End Function

    Public Sub buscar_us()
        Dim d As DataSet = ad.buscar_us(f_usuarios.dg_usuarios.DataSource)
        f_usuarios.dg_usuarios.DataSource = d

        f_usuarios.l_coincidencias.Text = f_usuarios.dg_usuarios.RowCount
    End Sub

    Public Sub guardar_f_usuarios()

        Dim nombre = f_usuarios.tb_nombre.Text
        Dim psw = f_usuarios.tb_psw.Text
        Dim tipo = f_usuarios.cb_tipo.Text
        Dim telefono = f_usuarios.tb_telefono.Text
        Dim direccion = f_usuarios.tb_direccion.Text
        Dim email = f_usuarios.tb_email.Text
        Dim id_usuario = ""

        If f_usuarios.dg_usuarios.CurrentRow IsNot Nothing Then
            id_usuario = CType(f_usuarios.dg_usuarios.CurrentRow.Cells("id_usuario").Value, String)
        Else
            MsgBox("No se ha seleccionado ningún registro")
        End If

        Dim u As New Usuario
        u = ad.devuelve_usu_by_psw_us(nombre, psw)

        If (f_usuarios.alta_us) Then
            alta_us(u, nombre, psw, tipo, telefono, direccion, email)

        Else
            modifica_us(nombre, psw, tipo, telefono, direccion, email, id_usuario)

        End If

    End Sub

    Public Sub baja_us()
        Dim id_usuario = ""

        If f_usuarios.dg_usuarios.CurrentRow IsNot Nothing Then
            id_usuario = CType(f_usuarios.dg_usuarios.CurrentRow.Cells("id_usuario").Value, String)
            Dim res = MsgBox("Confirma que desea eliminar a " & f_usuarios.tb_nombre.Text, MsgBoxStyle.OkCancel, "Aviso")
            If res = 1 Then
                If (ad.baja_usuario(id_usuario)) Then
                    f_usuarios.dg_usuarios.Rows.Remove(f_usuarios.dg_usuarios.CurrentRow)
                    MsgBox("Baja realizada con éxito")
                Else
                    MsgBox("No se ha podido realizar la baja")
                End If
            End If
        Else
            MsgBox("No se ha seleccionado ningún registro")
        End If

    End Sub

    Public Sub alta_us(ByVal u As Usuario, ByVal nombre As String, ByVal psw As String, ByVal tipo As String, ByVal telefono As String, ByVal direccion As String, ByVal email As String)
        If comprueba_vacios_us.Equals("") Then
            If (ad.existe_us_by_nombre(nombre)) Then
                MsgBox("Ya existe ese usuario")
                limpiar_us()
            Else

                If (ad.alta_usuario(nombre, psw, tipo, telefono, direccion, email)) Then
                    refresca_usuarios()
                    MsgBox("Alta realizada con éxito")
                    f_usuarios.alta_us = False
                Else
                    MsgBox("No se ha podido realizar el alta")
                End If

            End If
        Else
            MsgBox("Faltan los siguientes campos: " & vbCrLf & comprueba_vacios_us())
        End If

    End Sub

    Public Sub modifica_us(ByVal nombre As String, ByVal psw As String, ByVal tipo As String, ByVal telefono As String, ByVal direccion As String, ByVal email As String, ByVal id_usuario As String)
        If comprueba_vacios_us.Equals("") Then
            Dim res = MsgBox("Confirma que desea modificar a " & f_usuarios.tb_nombre.Text, MsgBoxStyle.OkCancel, "Aviso")
            If res = 1 Then
                If (ad.existe_us_by_nombre(nombre)) Then
                    If (id_usuario = ad.devuelve_us_by_nombre(nombre).getId_usuario()) Then
                        If (ad.modifica_usuario(nombre, psw, tipo, telefono, direccion, email, id_usuario)) Then
                            refresca_usuarios()
                            MsgBox("Modificación realizada con éxito")
                        Else
                            MsgBox("No se ha podido realizar la Modificación")
                        End If

                    Else
                        MsgBox("Ya existe ese nombre de usuario")
                    End If

                Else
                    If (ad.modifica_usuario(nombre, psw, tipo, telefono, direccion, email, id_usuario)) Then
                        MsgBox("Modificación realizada con éxito")
                        refresca_usuarios()
                    Else
                        MsgBox("No se ha podido realizar la Modificación")
                    End If
                End If

            End If
        Else
            MsgBox("Faltan los siguientes campos: " & vbCrLf & comprueba_vacios_us())
        End If
    End Sub

    '------------------------------ CLIENTES ---------------------------------------

    Public Sub muestra_clientes()
        Dim d As DataSet = ad.ver_clientes

        f_clientes.dg_clientes.DataSource = d
        f_clientes.dg_clientes.DataMember = "clientes"
        f_clientes.dg_clientes.Columns("id_cliente").Visible = False

        f_clientes.tb_nombre.DataBindings.Add("text", d, "clientes.nombre")
        f_clientes.tb_direccion.DataBindings.Add("text", d, "clientes.direccion")
        f_clientes.tb_email.DataBindings.Add("text", d, "clientes.email")
        f_clientes.tb_apellidos.DataBindings.Add("text", d, "clientes.apellidos")
        f_clientes.tb_telefono.DataBindings.Add("text", d, "clientes.telefono")

    End Sub

    Public Sub refresca_clientes()

        Dim d As DataSet = ad.ver_clientes
        f_clientes.dg_clientes.DataSource = d
        f_clientes.dg_clientes.DataMember = "clientes"
        f_clientes.dg_clientes.Columns("id_cliente").Visible = False

        f_clientes.tb_nombre.DataBindings.Clear()
        f_clientes.tb_apellidos.DataBindings.Clear()
        f_clientes.tb_direccion.DataBindings.Clear()
        f_clientes.tb_email.DataBindings.Clear()
        f_clientes.tb_telefono.DataBindings.Clear()

        f_clientes.tb_nombre.DataBindings.Add("text", d, "clientes.nombre")
        f_clientes.tb_direccion.DataBindings.Add("text", d, "clientes.direccion")
        f_clientes.tb_email.DataBindings.Add("text", d, "clientes.email")
        f_clientes.tb_telefono.DataBindings.Add("text", d, "clientes.telefono")


    End Sub

    Public Sub limpiar_clientes()


        f_clientes.tb_nombre.Text = ""
        f_clientes.tb_direccion.Text = ""
        f_clientes.tb_email.Text = ""
        f_clientes.tb_apellidos.Text = ""
        f_clientes.tb_telefono.Text = ""


    End Sub

    Public Function comprueba_vacios_cli() As String

        Dim errores = ""
        If (f_clientes.tb_nombre.Text.Equals("")) Then
            errores = errores & "- Nombre" & vbCrLf
        End If
        If (f_clientes.tb_apellidos.Text.Equals("")) Then
            errores = errores & "- Apellidos" & vbCrLf
        End If
        If (f_clientes.tb_telefono.Text.Equals("")) Then
            errores = errores & "- Telefono" & vbCrLf
        End If
        If (f_clientes.tb_direccion.Text.Equals("")) Then
            errores = errores & "- Direccion" & vbCrLf
        End If
        If (f_clientes.tb_email.Text.Equals("")) Then
            errores = errores & "- Email" & vbCrLf
        End If

        Return errores

    End Function

    Public Sub buscar_clientes()
        f_clientes.dg_clientes.DataSource = ad.buscar_cli(f_clientes.dg_clientes.DataSource)
        f_clientes.l_coincidencias.Text = f_clientes.dg_clientes.RowCount
    End Sub

    Public Sub baja_clientes()
        Dim id_cliente = ""

        If f_clientes.dg_clientes.CurrentRow IsNot Nothing Then
            id_cliente = CType(f_clientes.dg_clientes.CurrentRow.Cells("id_cliente").Value, String)
            Dim res = MsgBox("Confirma que desea eliminar a " & f_clientes.tb_nombre.Text, MsgBoxStyle.OkCancel, "Aviso")
            If res = 1 Then
                If (ad.baja_cliente(id_cliente)) Then
                    f_clientes.dg_clientes.Rows.Remove(f_clientes.dg_clientes.CurrentRow)
                    MsgBox("Baja realizada con éxito")
                Else
                    MsgBox("No se ha podido realizar la baja")
                End If
            End If
        Else
            MsgBox("No se ha seleccionado ningún registro")
        End If

    End Sub

    Public Sub alta_cliente(ByVal nombre As String, ByVal apellidos As String, ByVal telefono As String, ByVal direccion As String, ByVal email As String)
        If comprueba_vacios_cli.Equals("") Then


            If (ad.alta_cliente(nombre, apellidos, telefono, direccion, email)) Then
                refresca_clientes()
                MsgBox("Alta realizada con éxito")
                f_clientes.alta_cli = False
            Else
                MsgBox("No se ha podido realizar el alta")
            End If


        Else
            MsgBox("Faltan los siguientes campos: " & vbCrLf & comprueba_vacios_cli())
        End If

    End Sub

    Public Sub modifica_cli(ByVal nombre As String, ByVal apellidos As String, ByVal telefono As String, ByVal direccion As String, ByVal email As String, ByVal id_cliente As String)
        If comprueba_vacios_cli.Equals("") Then
            Dim res = MsgBox("Confirma que desea modificar a " & f_clientes.tb_nombre.Text, MsgBoxStyle.OkCancel, "Aviso")
            If res = 1 Then

                If (ad.modifica_cliente(nombre, apellidos, telefono, direccion, email, id_cliente)) Then
                    refresca_clientes()
                    MsgBox("Modificación realizada con éxito")
                Else
                    MsgBox("No se ha podido realizar la Modificación")
                End If

            End If
        Else
            MsgBox("Faltan los siguientes campos: " & vbCrLf & comprueba_vacios_cli())
        End If
    End Sub

    Public Sub guardar_f_clientes()

        Dim nombre = f_clientes.tb_nombre.Text
        Dim apellidos = f_clientes.tb_apellidos.Text
        Dim telefono = f_clientes.tb_telefono.Text
        Dim direccion = f_clientes.tb_direccion.Text
        Dim email = f_clientes.tb_email.Text
        Dim id_cliente = ""


        If (f_clientes.alta_cli) Then
            Me.alta_cliente(nombre, apellidos, telefono, direccion, email)

        Else

            If f_clientes.dg_clientes.CurrentRow IsNot Nothing Then
                id_cliente = CType(f_clientes.dg_clientes.CurrentRow.Cells("id_cliente").Value, String)
            Else
                MsgBox("No se ha seleccionado ningún registro")
            End If
            Me.modifica_cli(nombre, apellidos, telefono, direccion, email, id_cliente)

        End If



    End Sub


    '------------------------------ PROVEEDORES ---------------------------------------

    Public Sub muestra_proveedores()
        Dim d As DataSet = ad.ver_proveedores

        f_proveedores.dg_proveedores.DataSource = d
        f_proveedores.dg_proveedores.DataMember = "proveedores"
        f_proveedores.dg_proveedores.Columns("id_proveedor").Visible = False

        f_proveedores.tb_nombre.DataBindings.Add("text", d, "proveedores.nombre")
        f_proveedores.tb_direccion.DataBindings.Add("text", d, "proveedores.direccion")
        f_proveedores.tb_email.DataBindings.Add("text", d, "proveedores.email")
        f_proveedores.tb_telefono.DataBindings.Add("text", d, "proveedores.telefono")
    End Sub

    Public Sub buscar_proveedores()
        f_proveedores.dg_proveedores.DataSource = ad.buscar_pro(f_proveedores.dg_proveedores.DataSource)
        f_proveedores.l_coincidencias.Text = f_proveedores.dg_proveedores.RowCount
    End Sub

    Public Sub guardar_f_proveedores()
        Dim nombre = f_proveedores.tb_nombre.Text
        Dim telefono = f_proveedores.tb_telefono.Text
        Dim direccion = f_proveedores.tb_direccion.Text
        Dim email = f_proveedores.tb_email.Text
        Dim id_proveedor = ""

        If (f_proveedores.alta_pro) Then
            Me.alta_proveedor(nombre, telefono, direccion, email)

        Else

            If f_proveedores.dg_proveedores.CurrentRow IsNot Nothing Then
                id_proveedor = CType(f_proveedores.dg_proveedores.CurrentRow.Cells("id_proveedor").Value, String)
            Else
                MsgBox("No se ha seleccionado ningún registro")
            End If
            Me.modifica_proveedor(nombre, telefono, direccion, email, id_proveedor)

        End If

    End Sub

    Public Sub modifica_proveedor(ByVal nombre As String, ByVal telefono As String, ByVal direccion As String, ByVal email As String, ByVal id_proveedor As String)
        If comprueba_vacios_pro.Equals("") Then
            Dim res = MsgBox("Confirma que desea modificar a " & f_proveedores.tb_nombre.Text, MsgBoxStyle.OkCancel, "Aviso")
            If res = 1 Then

                If (ad.modifica_proveedor(nombre, telefono, direccion, email, id_proveedor)) Then
                    refresca_proveedores()
                    MsgBox("Modificación realizada con éxito")
                Else
                    MsgBox("No se ha podido realizar la Modificación")
                End If

            End If
        Else
            MsgBox("Faltan los siguientes campos: " & vbCrLf & comprueba_vacios_pro())
        End If
    End Sub

    Public Sub alta_proveedor(ByVal nombre As String, ByVal telefono As String, ByVal direccion As String, ByVal email As String)
        If comprueba_vacios_pro.Equals("") Then


            If (ad.alta_proveedores(nombre, telefono, direccion, email)) Then
                refresca_proveedores()
                MsgBox("Alta realizada con éxito")
                f_proveedores.alta_pro = False
            Else
                MsgBox("No se ha podido realizar el alta")
            End If


        Else
            MsgBox("Faltan los siguientes campos: " & vbCrLf & comprueba_vacios_pro())
        End If

    End Sub

    Public Function comprueba_vacios_pro() As String
        Dim errores = ""
        If (f_proveedores.tb_nombre.Text.Equals("")) Then
            errores = errores & "- Nombre" & vbCrLf
        End If
        If (f_proveedores.tb_telefono.Text.Equals("")) Then
            errores = errores & "- Telefono" & vbCrLf
        End If
        If (f_proveedores.tb_direccion.Text.Equals("")) Then
            errores = errores & "- Direccion" & vbCrLf
        End If
        If (f_proveedores.tb_email.Text.Equals("")) Then
            errores = errores & "- Email" & vbCrLf
        End If

        Return errores
    End Function

    Public Sub refresca_proveedores()
        Dim d As DataSet = ad.ver_proveedores
        f_proveedores.dg_proveedores.DataSource = d
        f_proveedores.dg_proveedores.DataMember = "proveedores"
        f_proveedores.dg_proveedores.Columns("id_proveedor").Visible = False

        f_proveedores.tb_nombre.DataBindings.Clear()
        f_proveedores.tb_direccion.DataBindings.Clear()
        f_proveedores.tb_email.DataBindings.Clear()
        f_proveedores.tb_telefono.DataBindings.Clear()

        f_proveedores.tb_nombre.DataBindings.Add("text", d, "proveedores.nombre")
        f_proveedores.tb_direccion.DataBindings.Add("text", d, "proveedores.direccion")
        f_proveedores.tb_email.DataBindings.Add("text", d, "proveedores.email")
        f_proveedores.tb_telefono.DataBindings.Add("text", d, "proveedores.telefono")


    End Sub

    Public Sub limpiar_proveedores()
        f_proveedores.tb_nombre.Text = ""
        f_proveedores.tb_direccion.Text = ""
        f_proveedores.tb_email.Text = ""
        f_proveedores.tb_telefono.Text = ""

    End Sub

    Public Sub baja_proveedores()
        Dim id_proveedor = ""

        If f_proveedores.dg_proveedores.CurrentRow IsNot Nothing Then
            id_proveedor = CType(f_proveedores.dg_proveedores.CurrentRow.Cells("id_proveedor").Value, String)
            Dim res = MsgBox("Confirma que desea eliminar a " & f_proveedores.tb_nombre.Text, MsgBoxStyle.OkCancel, "Aviso")
            If res = 1 Then
                If (ad.baja_proveedor(id_proveedor)) Then
                    f_proveedores.dg_proveedores.Rows.Remove(f_proveedores.dg_proveedores.CurrentRow)
                    MsgBox("Baja realizada con éxito")
                Else
                    MsgBox("No se ha podido realizar la baja")
                End If
            End If
        Else
            MsgBox("No se ha seleccionado ningún registro")
        End If

    End Sub

    '------------------------------ PRODUCTOS ---------------------------------------

    Public Sub muestra_productos()
        Dim d As DataSet = ad.ver_productos
        Dim d_prov As DataSet = ad.ver_proveedores
        Dim d_cat As DataSet = ad.ver_categorias

        f_productos.dg_productos.DataSource = d
        f_productos.dg_productos.DataMember = "productos"
        f_productos.dg_productos.Columns("id_proveedor_p").Visible = False
        f_productos.dg_productos.Columns("id_producto").Visible = False
        f_productos.dg_productos.Columns("id_categoria_p").Visible = False

        f_productos.tb_nombre.DataBindings.Add("text", d, "productos.nombre_producto")

        f_productos.cb_proveedores.DataSource = d_prov.Tables("proveedores")
        f_productos.cb_proveedores.DisplayMember = "nombre"
        f_productos.cb_proveedores.ValueMember = "id_proveedor"

        f_productos.cb_categorias.DataSource = d_cat.Tables("categorias")
        f_productos.cb_categorias.DisplayMember = "nombre"
        f_productos.cb_categorias.ValueMember = "id_categoria"

        f_productos.cb_categorias.DataBindings.Add("SelectedValue", d, "productos.id_categoria_p")
        f_productos.cb_proveedores.DataBindings.Add("SelectedValue", d, "productos.id_proveedor_p")


    End Sub

    Public Sub guardar_f_productos()
        Dim nombre = f_productos.tb_nombre.Text
        Dim id_categoria = f_productos.cb_categorias.SelectedValue
        Dim id_proveedor = f_productos.cb_proveedores.SelectedValue

        Dim id_producto = ""

        If (f_productos.alta_producto) Then
            Me.alta_producto(nombre, id_proveedor, id_categoria)

        Else

            If f_productos.dg_productos.CurrentRow IsNot Nothing Then
                id_producto = CType(f_productos.dg_productos.CurrentRow.Cells("id_producto").Value, String)

            Else
                MsgBox("No se ha seleccionado ningún registro")
            End If

            Me.modifica_producto(nombre, id_proveedor, id_categoria, id_producto)

        End If

    End Sub

    Public Sub modifica_producto(ByVal nombre As String, ByVal id_categoria As String, ByVal id_proveedor As String, ByVal id_producto As String)
        If comprueba_vacios_productos.Equals("") Then
            Dim res = MsgBox("Confirma que desea modificar a " & f_productos.tb_nombre.Text, MsgBoxStyle.OkCancel, "Aviso")
            If res = 1 Then

                If (ad.modifica_producto(nombre, id_categoria, id_proveedor, id_producto)) Then
                    refresca_productos()
                    MsgBox("Modificación realizada con éxito")
                Else
                    MsgBox("No se ha podido realizar la Modificación")
                End If

            End If
        Else
            MsgBox("Faltan los siguientes campos: " & vbCrLf & comprueba_vacios_productos())
        End If
    End Sub

    Public Sub cerrar()

        f_clientes.Close()
        f_login.Close()
        f_usuarios.Close()
        f_citas.Close()
        f_pop_unidades.Close()
        f_productos.Close()
        f_proveedores.Close()
        f_stocks.Close()
        f_mascotas.Close()
        f_adopciones.Close()

        f_agenda.Close()
        f_login.MdiParent = PlantillaPrincipal
        Form1.MdiParent = PlantillaPrincipal
        f_stocks.MdiParent = PlantillaPrincipal
        f_usuarios.MdiParent = PlantillaPrincipal
        f_clientes.MdiParent = PlantillaPrincipal
        f_proveedores.MdiParent = PlantillaPrincipal
        f_productos.MdiParent = PlantillaPrincipal
        f_citas.MdiParent = PlantillaPrincipal
        f_mascotas.MdiParent = PlantillaPrincipal
        f_agenda.MdiParent = PlantillaPrincipal
        f_adopciones.MdiParent = PlantillaPrincipal



    End Sub

    Public Sub agregar_stock(ByVal a As Boolean)
        Dim id_producto = ""

        If f_stocks.dg_stocks.CurrentRow IsNot Nothing Then
            id_producto = f_stocks.dg_stocks.CurrentRow.Cells("id_producto").Value
            If a Then

                If (ad.actualiza_stock(f_pop_unidades.numero, id_producto)) Then

                    MsgBox("Unidades Actualizadas")
                    Me.buscarStocks()
                Else
                    MsgBox("No se ha podido realizar la actualizacion")
                End If
            Else
                Dim unida = f_stocks.dg_stocks.CurrentRow.Cells("cantidad").Value

                If unida > f_pop_unidades.numero Then


                    If (ad.resta_stock(f_pop_unidades.numero, id_producto)) Then

                        MsgBox("Unidades Actualizadas")
                        Me.buscarStocks()
                        Dim nuevas As Integer = f_stocks.dg_stocks.CurrentRow.Cells("cantidad").Value
                        If nuevas <= 5 Then

                            MsgBox("Quedan menos de 5 unidades de este producto")
                        End If

                    Else
                        MsgBox("No se ha podido realizar la actualizacion")
                    End If
                Else
                    MsgBox("Unidad es Insuficientes")
                End If


            End If


        Else
            MsgBox("No se ha seleccionado ningún registro")
        End If
    End Sub

    Public Sub alta_producto(ByVal nombre As String, ByVal id_proveedor As String, ByVal id_categoria As String)
        If comprueba_vacios_productos.Equals("") Then


            If (ad.alta_producto(nombre, id_proveedor, id_categoria)) Then
                refresca_productos()
                f_productos.Close()
                f_productos.MdiParent = PlantillaPrincipal
                f_productos.Show()

                MsgBox("Alta realizada con éxito")
                f_productos.alta_producto = False
            Else
                MsgBox("No se ha podido realizar el alta")
            End If


        Else
            MsgBox("Faltan los siguientes campos: " & vbCrLf & comprueba_vacios_productos())
        End If

    End Sub

    Public Function comprueba_vacios_productos() As String
        Dim errores = ""
        If (f_productos.tb_nombre.Text.Equals("")) Then
            errores = errores & "- Nombre" & vbCrLf
        End If
        If (f_productos.cb_proveedores.Text.Equals("")) Then
            errores = errores & "- Proveedor" & vbCrLf
        End If
        If (f_productos.cb_categorias.Text.Equals("")) Then
            errores = errores & "- Categoria" & vbCrLf
        End If

        Return errores
    End Function

    Public Sub refresca_productos()
        Dim d As DataSet = ad.ver_productos
        f_productos.dg_productos.DataSource = d
        f_productos.dg_productos.DataMember = "productos"

        f_productos.dg_productos.Columns("id_proveedor_p").Visible = False
        f_productos.dg_productos.Columns("id_producto").Visible = False
        f_productos.dg_productos.Columns("id_categoria_p").Visible = False

        f_productos.tb_nombre.DataBindings.Clear()
        f_productos.cb_proveedores.DataBindings.Clear()
        f_productos.cb_categorias.DataBindings.Clear()

        f_productos.cb_proveedores.DataSource = d.Tables("proveedores")
        f_productos.cb_proveedores.DisplayMember = "nombre"
        f_productos.cb_proveedores.ValueMember = "productos.id_proveedor"

        f_productos.cb_categorias.DataSource = d.Tables("categorias")
        f_productos.cb_categorias.DisplayMember = "nombre"
        f_productos.cb_categorias.ValueMember = "productos.id_categoria"

        f_productos.cb_categorias.DataBindings.Add("SelectedValue", d, "productos.id_categoria_p")
        f_productos.cb_proveedores.DataBindings.Add("SelectedValue", d, "productos.id_proveedor_p")

    End Sub

    Public Sub limpiar_productos()
        f_productos.tb_nombre.Text = ""
        f_productos.cb_categorias.Text = ""
        f_productos.cb_proveedores.Text = ""

    End Sub

    Public Sub baja_productos()
        Dim id_producto = ""

        If f_productos.dg_productos.CurrentRow IsNot Nothing Then
            id_producto = CType(f_productos.dg_productos.CurrentRow.Cells("id_producto").Value, String)
            Dim res = MsgBox("Confirma que desea eliminar a " & f_productos.tb_nombre.Text, MsgBoxStyle.OkCancel, "Aviso")
            If res = 1 Then
                If (ad.baja_producto(id_producto)) Then
                    f_productos.dg_productos.Rows.Remove(f_productos.dg_productos.CurrentRow)
                    MsgBox("Baja realizada con éxito")
                Else
                    MsgBox("No se ha podido realizar la baja")
                End If
            End If
        Else
            MsgBox("No se ha seleccionado ningún registro")
        End If

    End Sub

    Public Sub buscar_productos()
        f_productos.dg_productos.DataSource = ad.buscar_productos(f_productos.dg_productos.DataSource)
        f_productos.l_coincidencias.Text = f_productos.dg_productos.RowCount
    End Sub

    '------------------------------ STOCKS ---------------------------------------


    Public Sub buscarStocks(ByVal nombre As String, ByVal id_categoria As Integer, ByVal id_proveedor As Integer)

        f_stocks.dg_stocks.DataSource = ad.buscarStocks(nombre, id_categoria, id_proveedor)

    End Sub

    Public Sub productosEnStock()

        f_stocks.cb_proveedor.DataSource = ad.ver_proveedores.Tables("proveedores")
        f_stocks.cb_proveedor.DisplayMember = "nombre"
        f_stocks.cb_proveedor.ValueMember = "id_proveedor"
        f_stocks.cb_categoria.DataSource = ad.ver_categorias.Tables("categorias")

        f_stocks.cb_categoria.DisplayMember = "nombre"
        f_stocks.cb_categoria.ValueMember = "id_categoria"

        f_stocks.dg_stocks.DataSource = ad.devuelveStocks

        f_stocks.dg_stocks.DataMember = "productos"
        f_stocks.cb_categoria.SelectedValue = 3
        f_stocks.cb_proveedor.SelectedValue = 2
        f_stocks.dg_stocks.Columns("id_producto").Visible = False
        f_stocks.l_coincidencias.Text = f_stocks.dg_stocks.RowCount

    End Sub

    Public Sub buscarStocks()



        f_stocks.dg_stocks.DataSource = ad.buscarStocks(f_stocks.tb_b_nombre.Text, CInt(f_stocks.cb_categoria.SelectedValue.ToString), CInt(f_stocks.cb_proveedor.SelectedValue.ToString))
        f_stocks.dg_stocks.Columns("id_producto").Visible = False
        f_stocks.l_coincidencias.Text = f_stocks.dg_stocks.RowCount

        'f_stocks.dg_stocks.DataMember = "buscadorStock"
    End Sub

    '------------------------------ MASCOTAS ---------------------------------------


    Public Sub muestra_mascotas()
        Dim d As DataSet = ad.ver_mascotas
        Dim d_duenos As DataSet = ad.ver_clientes

        f_mascotas.dg_mascotas.DataSource = d
        f_mascotas.dg_mascotas.DataMember = "mascotas"

        f_mascotas.dg_mascotas.Columns("id_mascota").Visible = False
        f_mascotas.dg_mascotas.Columns("id_cliente").Visible = False

        f_mascotas.tb_nombre.DataBindings.Add("text", d, "mascotas.nombre")

        f_mascotas.cb_dueno.DataSource = d_duenos.Tables("clientes")
        f_mascotas.cb_dueno.DisplayMember = "nombre"
        f_mascotas.cb_dueno.ValueMember = "id_cliente"

        f_mascotas.cb_dueno.DataBindings.Add("SelectedValue", d, "mascotas.id_cliente")

        f_mascotas.cb_adopcion.DataBindings.Add("SelectedValue", d, "mascotas.adopcion")



    End Sub

    Public Sub buscar_mascotas()
        f_mascotas.dg_mascotas.DataSource = ad.buscar_mascotas(f_mascotas.dg_mascotas.DataSource)
        f_mascotas.l_coincidencias.Text = f_mascotas.dg_mascotas.RowCount
    End Sub

    Public Sub limpiar_mascotas()
        f_mascotas.tb_nombre.Text = ""
        f_mascotas.cb_dueno.Text = ""
        f_mascotas.cb_adopcion.Text = ""

    End Sub

    Public Sub guardar_f_mascotas()
        Dim nombre = f_mascotas.tb_nombre.Text
        Dim id_dueno = f_mascotas.cb_dueno.SelectedValue
        Dim adopcion = f_mascotas.cb_adopcion.Text

        Dim id_mascota = ""

        If (f_mascotas.alta_mascota) Then
            Me.alta_mascota(nombre, id_dueno, adopcion)

        Else

            If f_mascotas.dg_mascotas.CurrentRow IsNot Nothing Then
                id_mascota = CType(f_mascotas.dg_mascotas.CurrentRow.Cells("id_mascota").Value, String)

            Else
                MsgBox("No se ha seleccionado ningún registro")
            End If

            Me.modifica_mascota(nombre, id_dueno, adopcion, id_mascota)

        End If
    End Sub

    Public Sub alta_mascota(ByVal nombre As String, ByVal id_dueno As Object, ByVal adopcion As String)
        If comprueba_vacios_mascotas.Equals("") Then

            If (ad.alta_mascota(nombre, id_dueno, adopcion)) Then
                refresca_mascotas()
                MsgBox("Alta realizada con éxito")
                f_mascotas.alta_mascota = False
            Else
                MsgBox("No se ha podido realizar el alta")
            End If

        Else
            MsgBox("Faltan los siguientes campos: " & vbCrLf & comprueba_vacios_mascotas())
        End If
    End Sub

    Public Sub modifica_mascota(ByVal nombre As String, ByVal id_dueno As Object, ByVal adopcion As String, ByVal id_mascota As String)
        If comprueba_vacios_mascotas.Equals("") Then
            Dim res = MsgBox("Confirma que desea modificar a " & f_mascotas.tb_nombre.Text, MsgBoxStyle.OkCancel, "Aviso")
            If res = 1 Then

                If (ad.modifica_mascota(nombre, id_dueno, adopcion, id_mascota)) Then
                    refresca_mascotas()
                    MsgBox("Modificación realizada con éxito")
                Else
                    MsgBox("No se ha podido realizar la Modificación")
                End If

            End If
        Else
            MsgBox("Faltan los siguientes campos: " & vbCrLf & comprueba_vacios_mascotas())
        End If
    End Sub

    Public Function comprueba_vacios_mascotas() As Object
        Dim errores = ""
        If (f_mascotas.tb_nombre.Text.Equals("")) Then
            errores = errores & "- Nombre" & vbCrLf
        End If
        If (f_mascotas.cb_dueno.Text.Equals("")) Then
            errores = errores & "- Dueño" & vbCrLf
        End If
        If (f_mascotas.cb_adopcion.Text.Equals("")) Then
            errores = errores & "- Adopción" & vbCrLf
        End If

        Return errores
    End Function

    Public Sub refresca_mascotas()
        Dim d As DataSet = ad.ver_mascotas
        f_mascotas.dg_mascotas.DataSource = d
        f_mascotas.dg_mascotas.DataMember = "mascotas"

        f_mascotas.dg_mascotas.Columns("id_mascota").Visible = False
        f_mascotas.dg_mascotas.Columns("id_cliente").Visible = False

        f_mascotas.tb_nombre.DataBindings.Clear()
        f_mascotas.cb_adopcion.DataBindings.Clear()
        f_mascotas.cb_dueno.DataBindings.Clear()

        f_mascotas.tb_nombre.DataBindings.Add("text", d, "mascotas.nombre")
        f_mascotas.cb_adopcion.DataBindings.Add("text", d, "mascotas.adopcion")
        f_mascotas.cb_dueno.DataBindings.Add("text", d, "mascotas.id_cliente")
        f_mascotas.cb_dueno.DataBindings.Add("SelectedValue", d, "mascotas.id_cliente")
        f_mascotas.cb_adopcion.DataBindings.Add("SelectedValue", d, "mascotas.adopcion")

    End Sub

    Public Sub baja_mascotas()
        Dim id_mascota = ""

        If f_mascotas.dg_mascotas.CurrentRow IsNot Nothing Then
            id_mascota = CType(f_mascotas.dg_mascotas.CurrentRow.Cells("id_mascota").Value, String)
            Dim res = MsgBox("Confirma que desea eliminar a " & f_mascotas.tb_nombre.Text, MsgBoxStyle.OkCancel, "Aviso")
            If res = 1 Then
                If (ad.baja_mascota(id_mascota)) Then
                    f_mascotas.dg_mascotas.Rows.Remove(f_mascotas.dg_mascotas.CurrentRow)
                    MsgBox("Baja realizada con éxito")
                Else
                    MsgBox("No se ha podido realizar la baja")
                End If
            End If
        Else
            MsgBox("No se ha seleccionado ningún registro")
        End If
    End Sub

    '------------------------------ AGENDA ---------------------------------------

    Public Sub muestra_agenda()
        Dim d As DataSet = ad.ver_proveedores
        f_agenda.dg_agenda.DataSource = d
        f_agenda.dg_agenda.DataMember = "proveedores"

        f_agenda.dg_agenda.Columns("id_proveedor").Visible = False
    End Sub

    Public Sub buscar_agenda()
        f_agenda.dg_agenda.DataSource = ad.buscar_agenda()
        f_agenda.dg_agenda.Text = f_agenda.dg_agenda.RowCount
    End Sub

    '------------------------------ CITAS ---------------------------------------

    Public Sub dame_mascotas_de_cliente()

        f_citas.cb_mascota.DataSource = Nothing

        f_citas.cb_mascota.DataSource = ad.dame_mascotas_por_ciente(f_citas.tb_cliente.Text).tables("mascotasDeCliente")
        f_citas.cb_mascota.DisplayMember = "nombre"
        f_citas.cb_mascota.ValueMember = "id_mascota"

    End Sub

    Public Sub alta_cita()
        Dim errores = ""
        Try
            f_citas.cb_mascota.SelectedValue.ToString()
        Catch
            errores = errores & "- Mascota" & vbCrLf
        End Try

        If (f_citas.cb_consulta.SelectedItem = Nothing) Then
            errores = errores & "- Consulta" & vbCrLf
        End If
        If (f_citas.cb_empleado.SelectedItem = Nothing) Then
            errores = errores & "- Empleado" & vbCrLf
        End If
        If (f_citas.calendario.SelectionRange.Start.Equals("")) Then
            errores = errores & "- Fecha" & vbCrLf
        End If
        If (f_citas.cb_hora.SelectedItem = Nothing) Then
            errores = errores & "- Hora" & vbCrLf
        End If
        If errores = "" Then
            If (ad.alta_cita(f_citas.cb_mascota.SelectedValue.ToString, f_citas.cb_consulta.SelectedItem.ToString(), f_citas.cb_empleado.SelectedItem.ToString(), f_citas.calendario.SelectionRange.Start, f_citas.cb_hora.SelectedItem.ToString())) Then
                MsgBox("Alta realizada con exito")
                refrescar_citas()

                PlantillaPrincipal.b_modificar_cita.Enabled = True
                PlantillaPrincipal.p_guardar.Enabled = False

                PlantillaPrincipal.b_eliminar_cita.Enabled = True
                PlantillaPrincipal.p_cita.Enabled = True

            End If
        Else

            MsgBox("Campos vacios " + errores)
        End If


    End Sub

    Public Sub eliminar_cita()
        If (ad.elimina_cita(f_citas.dg_citas.CurrentRow.Cells("id_cita").Value)) Then
            MsgBox("Cita eliminada")

            refrescar_citas()
        End If


    End Sub

    Public Sub modificar_cita()

        If (ad.modifica_cita(f_citas.dg_citas.CurrentRow.Cells("id_cita").Value, f_citas.cb_consulta.SelectedItem.ToString(), f_citas.cb_empleado.SelectedItem.ToString(), f_citas.calendario.SelectionRange.Start, f_citas.cb_hora.SelectedItem.ToString())) Then
            MsgBox("Modificacion realizada con exito")
            refrescar_citas()
            PlantillaPrincipal.b_agregar_cita.Enabled = True
            PlantillaPrincipal.b_eliminar_cita.Enabled = True
            PlantillaPrincipal.p_guardar.Enabled = False
            PlantillaPrincipal.p_cita.Enabled = True

        End If




    End Sub

    Public Sub refrescar_citas()

        f_citas.Close()
        f_citas.MdiParent = PlantillaPrincipal
        f_citas.Show()

    End Sub

    '----------------------------------- ADOPCION ------------------------------------------

    Public Sub adoptar()

        If comprueba_vacios_mascotas_adopcion.Equals("") Then

            Dim res = MsgBox("Confirma que desea adoptar a " & f_adopciones.tb_nombre.Text, MsgBoxStyle.OkCancel, "Aviso")
            If res = 1 Then
                Dim id_mascota = ""
                Dim id_dueno = f_adopciones.cb_dueno.SelectedValue

                If f_adopciones.dg_adopciones.CurrentRow IsNot Nothing Then

                    id_mascota = CType(f_adopciones.dg_adopciones.CurrentRow.Cells("id_mascota").Value, String)

                    If (ad.adoptar(id_mascota, id_dueno)) Then

                        refresca_mascotas_adopciones()
                        MsgBox("Adopción realizada con éxito")
                        'MsgBox(f_adopciones.tb_nombre.Text & " a sido adoptado con éxito")
                    Else
                        MsgBox("No se ha podido realizar la adopción")
                    End If
                Else
                    MsgBox("No se ha seleccionado ningún registro")
                End If
            End If
        Else
            MsgBox("Faltan los siguientes campos: " & vbCrLf & comprueba_vacios_mascotas_adopcion())
        End If
    End Sub

    Public Sub muestra_mascotas_adopcion()

        Dim d As DataSet = ad.ver_mascotas_adopcion
        Dim d_duenos As DataSet = ad.ver_clientes

        f_adopciones.dg_adopciones.DataSource = d
        f_adopciones.dg_adopciones.DataMember = "mascotas"
        f_adopciones.dg_adopciones.Columns("id_cliente").Visible = False


        f_adopciones.tb_nombre.DataBindings.Add("text", d, "mascotas.nombre")

        f_adopciones.cb_dueno.DataSource = d_duenos.Tables("clientes")
        f_adopciones.cb_dueno.DisplayMember = "nombre"
        f_adopciones.cb_dueno.ValueMember = "id_cliente"
        f_adopciones.dg_adopciones.Columns("id_mascota").Visible = False
        f_adopciones.dg_adopciones.Columns("id_cliente").Visible = False
    End Sub

    Public Function comprueba_vacios_mascotas_adopcion() As Object

        Dim errores = ""
        If (f_adopciones.tb_nombre.Text.Equals("")) Then
            errores = errores & "- Nombre" & vbCrLf
        End If
        If (f_adopciones.cb_dueno.Text.Equals("")) Then
            errores = errores & "- Dueño" & vbCrLf
        End If

        Return errores

    End Function

    Private Sub refresca_mascotas_adopciones()
        Dim d As DataSet = ad.ver_mascotas_adopcion
        Dim d_duenos As DataSet = ad.ver_clientes

        f_adopciones.dg_adopciones.DataSource = d
        f_adopciones.dg_adopciones.DataMember = "mascotas"

        f_adopciones.dg_adopciones.Columns("id_mascota").Visible = False

        f_adopciones.cb_dueno.DataBindings.Clear()
        f_mascotas.tb_nombre.DataBindings.Clear()


        f_adopciones.cb_dueno.DataSource = d_duenos.Tables("clientes")
        f_adopciones.cb_dueno.DisplayMember = "nombre"
        f_adopciones.cb_dueno.ValueMember = "id_cliente"

        f_mascotas.tb_nombre.DataBindings.Add("text", d, "mascotas.nombre")
        f_mascotas.cb_adopcion.DataBindings.Add("text", d, "mascotas.adopcion")
        f_mascotas.cb_dueno.DataBindings.Add("text", d, "mascotas.id_cliente")
    End Sub



End Class





